
#include "BotaoAzul.h"
#include "PetLab.h"


BotaoAzul::BotaoAzul(int cx, int cy, int x, int y)
    : Botao(cx, cy, x, y)
{
    for(int i=0; i<Largura(); i++)
        for(int j=0; j<Altura(); j++)
        {
            int raio = Largura();
            int x = i - Largura()/2;
            int y = j - Altura()/2;
			double fator = ((double)::sqrt((float)x*x+y*y))/(raio);
            
            int r = (int)((1-fator) * 64/2)+64;
            int g = (int)((1-fator) * 128/2)+128;
            int b = (int)((1-fator) * 255/4)+128+64;
            Matriz()[i][j] = RGBA(r,g,b,255);
        }
    
    int cor_da_linha = RGBA(128,255,128+64+32,128+64);
    
    for(int i=0; i<Largura(); i++)
    {
        Matriz()[i][0]          = cor_da_linha;
        Matriz()[i][Altura()-1] = cor_da_linha;
    }
    for(int j=0; j<Altura(); j++)
    {
        Matriz()[0][j]           = cor_da_linha;
        Matriz()[Largura()-1][j] = cor_da_linha;
    }

    Matriz()[0][0] &= 0x00FFFFFF;
    Matriz()[0][Altura()-1] &= 0x00FFFFFF;
    Matriz()[Largura()-1][0] &= 0x00FFFFFF;
    Matriz()[Largura()-1][Altura()-1] &= 0x00FFFFFF;
}


bool BotaoAzul::AoMoverSobre(EventoMoverSobre ev)
{
    Matriz().Mesclar(0,0, m_imSobre.Matriz(), 0,0,m_imSobre.Largura(), m_imSobre.Altura());
    ev.janela->Redesenhar(this);

	return false;
}


bool BotaoAzul::AoMoverFora(EventoMoverFora ev)
{
    Matriz().Mesclar(0,0, m_imNormal.Matriz(), 0,0,m_imNormal.Largura(), m_imNormal.Altura());
    ev.janela->Redesenhar(this);

	return false;
}

